package com.ungs.bo.impl;

import java.util.ArrayList;
import java.util.List;

import com.ungs.bo.CalidadBO;
import com.ungs.dao.CalidadDAO;
import com.ungs.dao.impl.CalidadDAOImpl;
import com.ungs.entities.Calidad;
import com.ungs.utils.Constantes;

public class CalidadBOImpl extends EntidadBOImpl<Calidad> implements CalidadBO {
	private CalidadDAO calidadDAO = new CalidadDAOImpl();

	@Override
	public List<Calidad> getCalidadByFilter(String param, boolean todos) {
		return calidadDAO.getCalidadByFilter(param, todos);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Calidad> getAllCalidad() {
		List<Calidad> calidadList = (List<Calidad>) getAll(Calidad.class);
		logger.info("Obteniendo lista de calidad con alta logica");
		List<Calidad> calidadReturn = new ArrayList<Calidad>();

		for (Calidad calidad : calidadList) {
			if (calidad.getEstadoLogico().equals(Constantes.ALTA)) {
				calidadReturn.add(calidad);
			}
		}

		return calidadReturn;
	}

	@Override
	public void eliminarCalidad(Calidad calidad) {
		logger.info("Baja logica calidad: " + calidad.getId());
		calidad.setEstadoLogico(Constantes.BAJA);
		actualizar(calidad);
	}

	@Override
	public Long getUltimoId() {
		Long idCalidad = null;
		Calidad calidad = calidadDAO.getUltimoCalidad();

		logger.info("Obteniendo ultimo id de calidad");
		if (calidad != null) {
			idCalidad = calidad.getId();
		}

		return idCalidad;
	}

}
